On computers with virtual machines, often also designated as virtual machine systems, different users can execute tasks independently and separately from each other. In virtual machine systems, the common hardware resources of the computer are distributed over several virtual environments, the so-called virtual machines. For the user or users, the virtual machines are presented as stand-alone, independent units. In this context, independent means that different operating systems with a wide variety of different applications, programs, or scripts can be executed on the individual virtual machines. The virtual machines are partitioned from each other so that one virtual machine cannot access the resources (for example, memory area) used by another virtual machine.
The core element of a virtual machine system is a controller, which makes available the hardware resources of the computer via logical interfaces to the individual virtual machines. An operating system or application program provided within a virtual machine accesses the logical interfaces provided by the controller in the same way as an operating system or application program executed directly on the computer would access the hardware resources. In this sense, the controller is transparent for the virtual machines.
In principle, two different types of virtual machine systems can be distinguished. In a first type of virtual machine system, the controller accesses the hardware resources directly, or optionally with the use of BIOS (Basic Input Output System). This is designated as a non-hosted or native system. In such a case, the controller is also called a hypervisor. One example for a non-hosted system is the VM2000 system from the company Fujitsu-Siemens.
In the other case, which is designated as a hosted system, the controller is an application program within an operating system environment executed directly on the computer. This approach offers the advantage that the controller can run during access to the hardware resources of the interfaces, e.g., the API (Application Programming Interface), provided by the operating system. However, a disadvantage compared with a non-hosted system can be that limitations of the operating system environment executed as a host apply for all of the virtual machines. One example of a hosted system is the virtual machine environment Virtual Server from the company Microsoft.
Especially for large non-hosted virtual machine systems, the individual virtual machines are typically used by different users at remote locations relative to the virtual machine system. The peripheral devices needed for this remote operation by the user, such as monitor, keyboard, and mouse, and also audio input or output units or printers, are connected for this purpose to a local computer. The transmission of input and output data between the local computer and the corresponding virtual machine in the central virtual machine system takes place via suitable networks. As the computer, often a standard PC is used by the user or a so-called thin client, which, however, is also essentially a standard PC in a minimum configuration and extremely compact construction.
For transmitting the input and output data, various, usually proprietary protocols are known. Many operating systems make available special protocols in order to transfer the work environment (desktop) of the virtual machine to the local computer, for example, RDP (Remote Desktop Protocol) for Windows XP and XDMCP (X Display Manager Control Protocol) for Linux. For this purpose, the local computer executes a matching application. Furthermore, all of the software elements necessary for controlling the peripheral devices (drivers) must be installed and configured on the local computer.
Known solutions, in order to make available a local workstation with corresponding peripheral devices via a network remote from the virtual machine system, always require a local computer with special applications and drivers for using the local peripheral devices.